„Най-добрият начин да получиш правилен отговор не е да питаш. Много по-ефективно е да напишеш грешния отговор“. И всеки ще бърза да те поправи, да влезе в спор, нали така?
Именно това гласи „законът на Кънингам“, прелюбопитно правило за това как ни е променила комуникацията онлайн. Но кой е този Кънингам? Интересна и поучителна е неговата история. Един от пионерите на демократичния интернет, той проправя пътя на Уикипедия и системите за споделяне на мнения онлайн. А ако сте се чудили откъде идва името на свободната енциклопедия, измисля го именно той след неочаквана случка.
Огромен е приносът на днешния ни герой за начина, по който разработваме софтуер. Освен че е сред създателите на Аджайл манифеста, формулирал основите на днешната IT индустрия, Уорд Кънингам е автор на използвани навсякъде в наши дни концепции като технологичния дълг или екстремно програмиране.
Въпреки това днес за него ще намерите броени редове онлайн, които се повтарят. Ето защо е време да се заровим в историята на един от пионерите, прелюбопитните образи, застанали от светлата страна на технологичния свят. Онези, благодарение на които интернет все още е свободна платформа. В която въпреки неспиращата и задълбочаваща се доминация на гигантите, винаги има място за мнението на всеки…
Уики, уики уей
Началото на 90-те, Хауърд Кънингам и съпругата му са отишли на дългоочакваната екскурзия на Хавай. Двамата са сред пионерите на компютърните технологии, запознали са се в университета през 70-те години, на студентско парти след тежък изпит. По онова време компютърните технологии даже не са се изучавали като отделна дисциплина, двамата следвали електроинженерство в комбинация със софтуер. След като завършили, създали обща компания, с която помагали на пионерните фирми, решили да използват в ежедневната си работа дядовците на днешните компютри.
Работата обаче е останала у дома, двамата кацат на летището в столицата Хонолулу, където ги посреща небивала жега. Побързват да излязат и да потърсят бърз транспорт до хотела, а отпред ги чакат две автобусчета. С горди големи надписи… „Уики“ и „Уики-уики“. Какво ли ще рече това, зачудил се Уорд? Оказало се, че думата на местния език ще рече „бърз“, а двукратното ѝ повторение се превежда като „още по-бърз“. Това е първата хавайска дума, която Уорд чува (и май последната, която научава), но му се струва особено колоритна.
На познавачите на хавайския ще оставим да разкажат дали още повторения биха направили нещата още по-скоростни, но почивката на Хавай определено отминава бързо за семейство Кънингам.
Двамата се връщат у дома, а когато Уорд продължава работата си по страничния проект, който разработва в свободното си време, се сеща за бусчетата „уики“ и решава да го кръсти именно на тях: “WikiWikiWeb“. Само няколко години по-късно думата ще стане популярна като част от „уикипедия“, универсалното място, където често днес търсим независимия поглед. Един от символите на демократичния интернет, на опита за безпристрастност, на идеала за равноправие онлайн, който често влиза в решителна битка с идеите на големите играчи…
Хакуна матата!
И макар че нашият герой няма пряко отношение към създаването на самата свободна енциклопедия, той е не само неин кръстник (произходът на имената в технологичния свят понякога е безспорно любопитен), но и предтеча. Именно неговата система с двете „уики“-та поставя основата. Позволява хората едновременно да събират и допълват информацията си, да обсъждат проследимо, ясно и аргументирано. И всичко това… за да създаваме по-качествен софтуер.
Именно това е голямата мечта, която и днес, вече надхвърлил 70-те, продължава да преследва Уорд Кънингам. Както той разказва, през 70-те години компютърните науки вече се задават като голямо предизвикателство, а все още не са поставени истинските им основи. Разработването на хардуера напредва, въвеждат се инженерни практики, компютрите стават все по-бързи, докато създаването на програмите се случва хаотично, неорганизирано, оставяйки сериозни проблеми, които много по-трудно могат да бъдат решени впоследствие.
Уорд научава за създаването на мрежата, която ще се превърне в интернет, малко след като тя е разработена от екипа на сър Тим Бърнърс-Лий. И бързо се размечтава за това как ще имаме глобална платформа, чрез която ще можем да обменяме информация с невиждана скорост.
Създава първия си сайт пред 1993 г., когато интернет е всичко друго, но не и бърз. Ще трябва да мине десетилетие, преди скоростта да стане достатъчна, за да разменяме спокойно файлове с другия край на света.
Го, уики, гоу!
Първият сайт на Уорд е именно тази платформа, в която кани съмишлениците да обсъждат проблемите и големите въпроси, свързани с разработването на софтуер. И когато, година по-късно, му идва идеята как технологично информацията да може да се допълва от всеки гост, се досеща за екскурзията и бързите автобусчета на Хонолулу. Така се появява WikiWikiWeb – сайт, в който програмистите обсъждат и допълват идеите си… бързо, поне според тогавашните скорости, на които е способна мрежата.
Постепенно, след първото „уики“ ще се появят хиляди други, свързани с различни общности. Уорд ще предостави платформата на всеки, който желае да я използва, както сам казва, защото не му хрумва, че може да става дума за начинание, което може да бъде патентовано. „Уики“ ще се превърне в синоним на колекция от информация по дадена тема, още преди следващото поколение компютърни ентусиасти да доразвие идеята и да я превърне в „Уикипедия“ като „енциклопедия за всичко“.
Какво е уики? „В най-простата си форма това е сайт, който уважава интелектуалното творчество на читателя“, казва Кънингам. „Според него този човек, който чете сайта, може да знае нещо, което аз не знам. И когато той го знае, ако е готов да го даде, ние сме готови да го приемем. Той казва: „Ние водим разговор“. Не е ли готино? На това е изградена нашата култура – на доверието помежду ни“.
Именно в първото уики Уорд предлага още една от идеите, с които остава в историята на компютърните науки. През последните години доста се говори за концепцията за „екстремно програмиране“, с чиято помощ се разработва софтуер най-вече тогава, когато трябва да се случва бързо, например в стартъпите.
Екстремистът с очилата
Но… какво ще да значи екстремно програмиране? Спускате се по ски-пистата, докато си пишете кода или пък вдигате стокилограмова щанга от лежанка? Би било интересно, но, както бихте могли да се досетите от снимките на Уорд, идеята не е точно това.
Всъщност става дума за доста обширна концепция, при която програмистите трябва да разработват продукта си на кратки цикли, с по-висока производителност, която обаче не е за сметка на качеството. Нито пък на напрежението, както може би бихме могли да се подведем от наименованието.
Още една идея от екстремното програмиране е писането на код по двойки (дали пък е случайно, че Уорд от 50 години работи заедно с жена си?). Сред идеалите влизат простотата на кода, честата комуникация в рамките на екипа. И ако се чудите къде във всичко това е екстремното… то идеята е, че именно най-полезните според Уорд и съмишлениците му практики в създаването на софтуер са доведени до екстремни нива.
И ако за екстремното програмиране може да не са чували дори хора от софтуерния свят, то със сигурност това дали познавате една думичка от опита на нашия герой ясно показва имали ли сте досег с тази индустрия. През последните години да сме „аджайл“ е мантра, която се повтаря под път и над път. На български бихме я превели като „гъвкаво“ разработване на софтуер, концепцията идва в началото на новото хилядолетие от един кратък, достатъчно ясен и същевременно общ манифест, написан от водещи светила в индустрията. „10-те божи заповеди“ за програмистите всъщност са… 12. Принципи като например, че „хората и комуникацията стоят над процесите и инструментите“, че „работещият софтуер е по-важен от подробната документация“.
Надали днес ще чуете, че някой софтуерен екип, поне по нашите ширини, не спазва постулатите, формулирани от 17 „мъдри глави“ през 2001 г. (официалния им български превод ще намерите тук). Може би най-известни сред подписалите са Робърт Мартин, познат и на гостите на Дигитални истории като Чичо Боб, Мартин Фаулър и, разбира се, днешният ни герой.
Макар че през дългата си кариера той така и не спира да работи за семейната фирма, успоредно с това се включва в много други начинания. И ако повечето са свързани с не толкова големи проекти, встрани от мейнстрийма, струва си да отбележим, че две години работи за Microsoft в групата за „Патенти и добри практики“. Колко добри практики успява да въведе можем, само да предположим, след като не успява да се задържи особено дълго в тази работа.
Дългът зове
Да дължиш пари на някого… за мнозина е кошмар, за други – ежедневие. Ето че стигаме до още една огромна и много важна концепция, формулирана и популяризирана от Уорд – т.нар. технологичен дълг (technical dept).
Нерядко в бързината и водени от нуждата да се въвеждат нови и нови възможности в софтуера, създателите му се примиряват с компромисни решения. Оставят редове код, които биха могли да бъдат написани по-ясно, правят преценки, които са далеч от оптималните. Така бавно, но сигурно се трупа този показател, за първи път популяризиран от нашия герой.
Днес всички сме свидетели на огромните тонове технологичен дълг, трупани от най-големите софтуерни фирми. Мащабни проекти с милиарди потребители често се провалят с дребни грешки, не работят според очакванията, стават уязвими за кибератаки. Това явление е предсказано от Уорд още по времената преди интернет да завладее света. И ясно формулирано – според него всеки софтуерен екип трябва да следи технологичния дълг, който трупа и периодично да взема мерки. Така че вече създаденият код да се подобрява, адаптира, обновява…. Обратното на онова, което изразява традиционната програмистка мисъл „щом работи, не го пипай“.
Е, с тези му размисли можем да предположим защо Уорд така и не се налага сред гигантите в Силициевата долина, които все бързат ли, бързат, в търсене на нови възможности на софтуера… и на милиарди.
Вересия – никому!
Ето че въпреки всички негови забележителни успехи и приноса му за начина, по който днес създаваме софтуер, много по-вероятно е да срещнете името му като част от „Закона на Кънингам“, с който започнахме. Но как програмистът става популярен с мисълта, че „Най-добрият начин да получиш правилен отговор не е да питаш. Много по-ефективно е да напишеш грешния отговор“? Вината не е негова.
Някои търсят корените на закона в древността. Например в Платоновия диалог „Менон“ Сократ се съгласява с погрешните заключения на своя приятел Менон, надявайки се, че по този начин разговорът ще продължи. Така или иначе, принципът продължава да работи безотказно във фейсбук, защото често хората обичат да изглеждат по-умни от другите. И онлайн имат възможност да го демонстрират с пълна сила (макар понякога резултатът да е обратният).
Макар да признава, че популярността на „закона“ го ласкае, програмистът смята, че правилото се самоотрича от това колко често се цитира онлайн. Всъщност, формулировката е предложена от Стивън Макгийди, дългогодишен лидер на производителя на микропроцесори Intel.
Узми си Уордо
Стивън си спомня как през 80-те Уорд му дава този съвет за общуването в предците на днешните форуми. После нашият герой казва, че е цитиран погрешно, но това не пречи законът да стане по-популярен от истинските му успехи. Докато той самият смята за най-голям принос платформата „Уики“ и вярва, че именно тя ще бъде увековечена на надгробния му паметник.
Защото помага да споделяме, да работим заедно, да се допълваме – нещо, което все по-трудно се получава днес, отбелязва той. „Понякога, когато работиш в екип, трябва да се довериш на хората повече, отколкото имаш основание да го направиш“, казва Кънингам. „И това работи, защото повечето хора са добри.“
Това ни го казва човек, цял живот воден напред от технологиите. Който още през 90-те живее в дом с няколко вътрешни мрежи, в който всеки обитател, дори котката има уебсайт. А компютрите са пръснати наоколо, както в повечето домове се разлистват списания, както сполучливо отбелязва журналист, оказал се на гости на програмиста.
„Уорд винаги е бил социален тип“, казва жена му Карън. „Той е особено заинтересован да се среща с хора, които предизвикват мисленето му или вдъхновяват интелектуалното му любопитство. От доста време истинският му фокус е върху общностите, върху начините за използване на технологиите, така че да се изграждат такива“.
Просто Уорд
„Наистина смятам, че програмирането е лесно и забавно занимание“, казва Уорд.
„Тези, които го смятат за трудно и скучно, трябва просто да натрупат още малко опит“.
И ако има още нещо от професионалната му биография, което си струва да споменем, преди да се разделим, то е, че Уорд е сред хората, които дълги години популяризират „малкия език“ за програмиране – SmallTalk. (Още за него – тук.) Начинанието, чийто синтаксис е толкова лаконичен, че може да се събере на пощенска картичка, всъщност се оказва изключително удобно за редица ситуации.
Защото, както обича да повтаря нашият герой, основно правило в работата на хората, създаващи софтуер, трябва да е простотата. Простите решения са най-елегантни, разбираеми, лесни за поддръжка. А всяко усложнение, което може да бъде избегнато, си струва да бъде.
„Какво е простотата? Най-краткият път към дадено решение“, казва той. „Всъщност се наслаждавам на сложността, която дава възможност за действие. Ако тя ме предизвиква, е много приятна. Но понякога трябва да се справям със сложност, която не ми дава сили. Сложността, която презираме, е тази, която води до ненужни трудности.“
А като се замисли човек… за софтуерния свят това е безспорно. Но дали пък не е чудесно правило и за живота?
Материалът е подготвен със специалното съдействие на Ирина Марудина.